Download Standard XML or JSON Files

Standard XML and JSON files are available for any submitted or dispatched form. These files include metadata that can help with your organization’s audit and compliance requirements. For example, the standard XML and JSON files include information about the last user to answer or edit a question. This topic describes how to download the files and the metadata that they include.

Tip:Downloading an XML or JSON file is a manual process. For integrations with third-party systems, consider setting up an XML or JSON output document. You can then link the documents to a Data Destination to send directly to your third-party system.

You can also:

Available on all tiers:

Essentials
Advanced
Enterprise

Contents

Steps to download an XML or JSON file

Some types of output documents might not include all metadata. If you want to get more information, you can download a standard JSON or XML file. These are available from the View the Details of a Form Submission page.

You can download an XML or JSON file for any dispatched, submitted, or transferred (TrueContext TeamworkClosed TrueContext Teamwork is an Enterprise tier feature that enables mobile users to transfer incomplete forms for other users to complete as part of a multi-user workflow. This can be useful for jobs that require someone else's expertise or that span multiple shifts.-enabled) form. You can then open the file or manually upload it to your third-party system.

  1. Navigate to the submissions page of your form:

    Data & Analytics > Submissions (by Form) > FormName > Continue

    or

    Forms & Integrations > FormName > Go to submissions

    Result: The Web Portal displays the Form Submissions page for the selected form. By default, The Form Submissions page displays form submissions from the last 30 days.

    Tip:You can change your Search Options to find specific submitted or dispatched forms. For example, filter on a date range to find all submitted forms from 2022-01-01 through 2022-12-31.

  2. Select the Reference # of the dispatched, submitted, or transferred form.

    Result: The Web Portal displays the details page.

  3. Hover over the arrow next to the reference number to show the list of actions.

    The details page of a a submitted "Construction Equipment Inspection" form. Hover over the arrow next to the submission's reference number, then select "Download Standard XML" or "Download Standard JSON".

  4. Select either Download Standard XML or Download Standard JSON.

    Result: The XML or JSON file of the selected form downloads.

    Info:If the XML or JSON document is linked to a Multi-Language Form, the system prompts you to select a language for the document. The document shows translated form content based on the form’s translation file. The key names and question Unique IDs don’t change. For your integrations, map to the question Unique IDClosed A Unique ID refers to the specific identifier of a question, form page, form section, or Data Destination. Unique IDs are used as reference points when pulling data for conditional logic, Analytics projects, Data Destinations, and Documents., which doesn’t change, rather than the question text.

Tip:You can also download an XML or JSON file with the TrueContext REST API.

Description of metadata in a standard JSON or XML file

The following table describes the metadata that you can find in the standard XML and JSON downloads.

Info:Standard JSON and XML files label the form submission status as a “state”. The topic Form Submission Status describes in detail the different status types a form submission can have.

Type of metadata JSON example XML example
Submission details

Form status:

"state": "Complete",

Submission status:

"dataState": "Processed",

DispatchClosed The term "dispatch" refers to the act of sending a form to a mobile user or customer. Typically, a dispatched form includes some information pre-filled to give the recipient context for the work to be done. Dispatch can be manual or automated (using a Dispatch Data Destination or the TrueContext REST API). status on the Web Portal:

"orphanedDispatch": false,

If the field user submits a dispatched form after the dispatch was deleted in the Web Portal, then orphanedDispatch=true.

Submitted date and time on the user’s device:

"deviceSubmitDate": {
    "provided": {
       "time": "2023-03-09T10:31:58-05:00",
       "zone": "America/Toronto"
       },
    "shifted": "2023-03-09T10:31:58-05:00"
    },

Received date and time on the TrueContext server:

"serverReceiveDate": "2023-03-09T10:32:41-05:00",

Form status:

<state>Complete</state>

Submission status:

<dataState>Processed</dataState>

Dispatch status on the Web Portal:

<orphanedDispatch>false</orphanedDispatch>

If the field user submits a dispatched form after the dispatch was deleted in the Web Portal, then orphanedDispatch=true.

Submitted date and time on the user’s device:

<deviceSubmitDate>
    <provided>
      <time>2023-03-09T10:31:58-05:00</time>
      <zone>America/Toronto</zone>
    </provided>
    <shifted>2023-03-09T10:31:58-05:00</shifted>
  </deviceSubmitDate>

Received date and time on the TrueContext server:

<serverReceiveDate>2023-03-09T10:32:41-05:00</serverReceiveDate>

Dispatch details

Dispatch date and time:

"dispatchDate": "2023-08-10T10:52:10-04:00",

Dispatch details:

    "dispatchMetadata": {
        "notes": "Tell building security about your arrival before you start work.",
        "priority": "Medium",
        "dueDate": {
            "provided": {
                "time": "2023-08-18T11:30:00-04:00",
                "zone": "America/New_York"
            },
            "shifted": "2023-08-18T11:30:00-04:00"
        },
        "coordinates": {
            "latitude": 45.3472904,
            "longitude": -75.9095115,
            "altitude": null
        }
    },

Dispatch date and time:

<dispatchDate>2023-08-10T10:52:10-04:00</dispatchDate>

Dispatch details:

  <dispatchMetadata>
    <notes>Tell building security about your arrival before you start work.</notes>
    <priority>Medium</priority>
    <dueDate>
      <provided>
        <time>2023-08-18T11:30:00-04:00</time>
        <zone>America/New_York</zone>
      </provided>
      <shifted>2023-08-18T11:30:00-04:00</shifted>
    </dueDate>
    <coordinates>
      <latitude>45.3472904</latitude>
      <longitude>-75.9095115</longitude>
    </coordinates>
  </dispatchMetadata>
Form details

Form and FormSpaceClosed FormSpaces are where forms are stored and organized in the TrueContext Web Portal. A TrueContext Team may have multiple FormSpaces, depending on their needs. Admins can set FormSpace permissions to control which users have access to the forms in that FormSpace. identifiers and versions:

"form": {
        "identifier": "1423164009",
        "versionIdentifier": "1527638015",
        "name": "HVAC Work Order",
        "version": 48,
        "formSpaceIdentifier": "195823004",
        "formSpaceName": "Existing Customers"
    },

Form and FormSpace identifiers and versions:

<form identifier="1423164009">
    <versionIdentifier>1527638015</versionIdentifier>
    <name>HVAC Work Order</name>
    <version>48</version>
    <formSpaceIdentifier>195823004</formSpaceIdentifier>
    <formSpaceName>Existing Customers</formSpaceName>
  </form>
Submitter details

Submitter identifiers:

"user": {
        "identifier": "1317016005",
        "username": "j.smith",
        "displayName": "Jenny Smith"
    },

Submitter identifiers:

<user identifier="1317016005">
    <username>j.smith</username>
    <displayName>Jenny Smith</displayName>
  </user>
Dispatcher details

Dispatcher identifiers:

"dispatcher": {
        "identifier": "137549047",
        "username": "l.yung",
        "displayName": "Lynn Yung"
    },

Dispatcher identifiers:

<dispatcher identifier="137549047">
    <username>l.yung</username>
    <displayName>Lynn Yung</displayName>
  </dispatcher>
Submitter’s geo location

Geo location details include:

  • Timestamp (date and time) of when the location was collected

  • Location coordinates

  • Location address

"geoStamp": {
        "success": true,
        "captureTimestamp": {
            "provided": {
                "time": "2023-06-14T12:46:53-04:00",
                "zone": "America/Toronto"
            },
            "shifted": "2023-06-14T12:46:53-04:00"
        },
        "errorMessage": null,
        "source": "GPS",
        "coordinates": {
            "latitude": 45.342761120048436,
            "longitude": -75.915798518297,
            "altitude": 0.0
        },
        "accuracy": 4025.286,
        "address": "2500 Solandt Rd, Kanata, ON K2K 3G5, Canada",
        "addressDetails": {
            "source": "Google",
            "components": [
                {
                    "shortName": "2500",
                    "longName": "2500",
                    "types": [
                        "street_number"
                    ]
                },
                {
                    "shortName": "Solandt Rd",
                    "longName": "Solandt Road",
                    "types": [
                        "route"
                    ]
                },
                {
                    "shortName": "Kanata",
                    "longName": "Kanata",
                    "types": [
                        "political",
                        "sublocality",
                        "sublocality_level_1"
                    ]
                },
                {
                    "shortName": "Ottawa",
                    "longName": "Ottawa",
                    "types": [
                        "locality",
                        "political"
                    ]
                },
                {
                    "shortName": "Ottawa",
                    "longName": "Ottawa",
                    "types": [
                        "administrative_area_level_3",
                        "political"
                    ]
                },
                {
                    "shortName": "Ottawa",
                    "longName": "Ottawa",
                    "types": [
                        "administrative_area_level_2",
                        "political"
                    ]
                },
                {
                    "shortName": "ON",
                    "longName": "Ontario",
                    "types": [
                        "administrative_area_level_1",
                        "political"
                    ]
                },
                {
                    "shortName": "CA",
                    "longName": "Canada",
                    "types": [
                        "country",
                        "political"
                    ]
                },
                {
                    "shortName": "K2K 3G5",
                    "longName": "K2K 3G5",
                    "types": [
                        "postal_code"
                    ]
                }
            ]
        }
    },

Geo location details include:

  • Timestamp (date and time) of when the location was collected

  • Location coordinates

  • Location address

<geoStamp>
    <success>true</success>
    <captureTimestamp>
      <provided>
        <time>2023-06-14T12:46:53-04:00</time>
        <zone>America/Toronto</zone>
      </provided>
      <shifted>2023-06-14T12:46:53-04:00</shifted>
    </captureTimestamp>
    <source>GPS</source>
    <coordinates>
      <latitude>45.342761120048436</latitude>
      <longitude>-75.915798518297</longitude>
      <altitude>0.0</altitude>
    </coordinates>
    <accuracy>4025.286</accuracy>
    <address>2500 Solandt Rd, Kanata, ON K2K 3G5, Canada</address>
    <addressDetails>
      <source>Google</source>
      <components>
        <component>
          <shortName>2500</shortName>
          <longName>2500</longName>
          <types>
            <type>street_number</type>
          </types>
        </component>
        <component>
          <shortName>Solandt Rd</shortName>
          <longName>Solandt Road</longName>
          <types>
            <type>route</type>
          </types>
        </component>
        <component>
          <shortName>Kanata</shortName>
          <longName>Kanata</longName>
          <types>
            <type>political</type>
            <type>sublocality</type>
            <type>sublocality_level_1</type>
          </types>
        </component>
        <component>
          <shortName>Ottawa</shortName>
          <longName>Ottawa</longName>
          <types>
            <type>locality</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>Ottawa</shortName>
          <longName>Ottawa</longName>
          <types>
            <type>administrative_area_level_3</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>Ottawa</shortName>
          <longName>Ottawa</longName>
          <types>
            <type>administrative_area_level_2</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>ON</shortName>
          <longName>Ontario</longName>
          <types>
            <type>administrative_area_level_1</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>CA</shortName>
          <longName>Canada</longName>
          <types>
            <type>country</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>K2K 3G5</shortName>
          <longName>K2K 3G5</longName>
          <types>
            <type>postal_code</type>
          </types>
        </component>
      </components>
    </addressDetails>
  </geoStamp>
Device details

OS type and TrueContext Mobile App version:

"device": {
        "os": "iOS",
        "osVersion": "15.5",
        "mobileAppVersion": "16.6.0.3480"
    },

OS type and TrueContext Mobile App version:

<device>
    <os>iOS</os>
    <osVersion>15.5</osVersion>
    <mobileAppVersion>16.6.0.3480</mobileAppVersion>
  </device>

Last time an answer was modified

Date and time last modified:

"lastModified": {
     "provided": {
        "time": "2023-08-10T11:05:46-04:00",
        "zone": "America/New_York"
        },
     "shifted": "2023-08-10T11:05:46-04:00"
    },

User details:

"modifiedBy": {
     "identifier": "1317016008",
     "username": "p.schmidt",
     "displayName": "Paul Schmidt"
    },

If a dispatcher prefills any answers, their user details show in the modifiedBy section.

Date and time last modified:

<lastModified>
    <provided>
       <time>2023-08-10T11:05:46-04:00</time>
       <zone>America/New_York</zone>
    </provided>
    <shifted>2023-08-10T11:05:46-04:00</shifted>
  </lastModified>

User details:

<modifiedBy identifier="1317016008">
    <username>p.schmidt</username>
    <displayName>Paul Schmidt</displayName>
  </modifiedBy>

If a dispatcher prefills any answers, their user details show in the modifiedBy section.

Info:You can also set up the question-level metadata in the following output documents:

Explanation of timestamp values

The standard downloads display two timestamps: provided and shifted.

For submitted and transferred (TrueContext Teamwork-enabled) forms:

  • provided—Timestamp in the mobile user’s time zone (from their device settings).

  • shifted—In standard downloads, the shifted timestamp is the same as the provided timestamp.

For dispatched forms, the mobile user’s time zone isn’t available to the server. In these cases, we fall back to: